{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 多输入神经元\n",
    "\n",
    "作者: [赵振宇](https://github.com/15947470421)\n",
    "\n",
    "感谢朱文凯为本教程提供的建议"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "聪明的读者会发现，上一节中所有神经元模型，我们的神经元都只有一个输入信号。\n",
    "\n",
    "实际上，一个神经元会通过许多树突接受许多来自其他神经元轴突的输入信号，然后这些信号各自加权后求和，最终变化为膜电压。\n",
    "\n",
    "SNN中的加权求和的过程与传统ANN中的并没有区别，因此，我们可以直接使用pytorch中的全连接层用于模拟加权求和，然后将加权求和后的结果输入到脉冲神经元模型中即可。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# import\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "from torch.nn import functional as F\n",
    "from spikingjelly.activation_based import neuron\n",
    "from spikingjelly import visualizing\n",
    "from matplotlib import pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们首先仿真一个4输入的神经元模型，我们通过nn.Linear来实现加权求和，再将加权求和后的结果输入到脉冲神经元层"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "输入 = tensor([0.8207, 0.2316, 0.6463, 0.6736])\n",
      "权重 =  Parameter containing:\n",
      "tensor([[-0.1251, -0.1470,  0.0496, -0.4917]], requires_grad=True)\n",
      "脉冲神经元膜电压 = tensor([-0.4359], grad_fn=<DifferentiableGraphBackward>)\n"
     ]
    }
   ],
   "source": [
    "# 生成一个长度为4的向量\n",
    "x = torch.rand(size=[4])\n",
    "print(f\"输入 = {x}\")\n",
    "# 新建一个全连接层\n",
    "linear_layer = nn.Linear(in_features=4, out_features=1, bias=False)\n",
    "print(\"权重 = \", linear_layer.weight) # 输出权重\n",
    "# 新建一个脉冲神经元层\n",
    "if_layer = neuron.IFNode()\n",
    "\n",
    "y = linear_layer(x) # 先通过全连接层实现加权求和\n",
    "if_layer(y) # 将加权求和后的结果输入脉冲神经元层\n",
    "print(f\"脉冲神经元膜电压 = {if_layer.v}\") # 输出脉冲神经元膜电压"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们可以来自行验证结果，将输入信号与权重进行点积，最后会发现结果就是神经元的膜电压。\n",
    "\n",
    "例如，输入信号向量为[4.9141, 2.7951, 4.7442, 0.8508]，权重向量为[0.3059, -0.2457, -0.2957, 0.4839]，最终膜电压为-0.1745\n",
    "\n",
    "总结一下，我们使用pytorch中的nn.Linear全连接层来实现加权求和过程，然后将加权求和后的结果输入脉冲神经元层，判断膜电压是否大于阈值，并产生脉冲。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "输入 = tensor([0.4870, 0.0997, 0.8498, 0.0593])\n",
      "权重 =  Parameter containing:\n",
      "tensor([[ 0.4239,  0.4399,  0.4290, -0.1096]], requires_grad=True)\n",
      "[tensor([0.], grad_fn=<sigmoidBackward>), tensor([1.], grad_fn=<sigmoidBackward>), tensor([0.], grad_fn=<sigmoidBackward>), tensor([1.], grad_fn=<sigmoidBackward>), tensor([0.], grad_fn=<sigmoidBackward>), tensor([1.], grad_fn=<sigmoidBackward>), tensor([0.], grad_fn=<sigmoidBackward>), tensor([1.], grad_fn=<sigmoidBackward>), tensor([0.], grad_fn=<sigmoidBackward>), tensor([1.], grad_fn=<sigmoidBackward>), tensor([0.], grad_fn=<sigmoidBackward>), tensor([1.], grad_fn=<sigmoidBackward>), tensor([0.], grad_fn=<sigmoidBackward>), tensor([1.], grad_fn=<sigmoidBackward>), tensor([0.], grad_fn=<sigmoidBackward>), tensor([1.], grad_fn=<sigmoidBackward>), tensor([0.], grad_fn=<sigmoidBackward>), tensor([1.], grad_fn=<sigmoidBackward>), tensor([0.], grad_fn=<sigmoidBackward>), tensor([1.], grad_fn=<sigmoidBackward>)]\n",
      "[tensor([0.6083], grad_fn=<DifferentiableGraphBackward>), tensor([0.], grad_fn=<DifferentiableGraphBackward>), tensor([0.6083], grad_fn=<DifferentiableGraphBackward>), tensor([0.], grad_fn=<DifferentiableGraphBackward>), tensor([0.6083], grad_fn=<DifferentiableGraphBackward>), tensor([0.], grad_fn=<DifferentiableGraphBackward>), tensor([0.6083], grad_fn=<DifferentiableGraphBackward>), tensor([0.], grad_fn=<DifferentiableGraphBackward>), tensor([0.6083], grad_fn=<DifferentiableGraphBackward>), tensor([0.], grad_fn=<DifferentiableGraphBackward>), tensor([0.6083], grad_fn=<DifferentiableGraphBackward>), tensor([0.], grad_fn=<DifferentiableGraphBackward>), tensor([0.6083], grad_fn=<DifferentiableGraphBackward>), tensor([0.], grad_fn=<DifferentiableGraphBackward>), tensor([0.6083], grad_fn=<DifferentiableGraphBackward>), tensor([0.], grad_fn=<DifferentiableGraphBackward>), tensor([0.6083], grad_fn=<DifferentiableGraphBackward>), tensor([0.], grad_fn=<DifferentiableGraphBackward>), tensor([0.6083], grad_fn=<DifferentiableGraphBackward>), tensor([0.], grad_fn=<DifferentiableGraphBackward>)]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+kAAAK8CAYAAACTCf6PAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACLyElEQVR4nOzdd3iV9f3/8dfJTiAJyAohYSgbwhAc4MCJosW6UVsQRy0Vi4B7VKy2YlUsWsXxdf+sltZBteKgKkNRi0DYbqYEGUoSRvb9+yOcAzGDnOSc932fk+fjunK1OTnnzifPM/B9zn3u43McxxEAAAAAAHBdjNsLAAAAAAAAlRjSAQAAAADwCIZ0AAAAAAA8giEdAAAAAACPYEgHAAAAAMAjGNIBAAAAAPAIhnQAAAAAADyCIR0AAAAAAI9gSAcAAAAAwCMY0gEAAAAA8AiGdACAay6//HLFx8erpKSk1vOcccYZSklJ0UknnSSfzyefz6e+fftWOY/jOLrrrrs0b968KqfPmjUrcBmfz6fPP/88LH9HQ9x5553y+Xz1Ou8nn3yiCy64QO3bt1dCQoJatWqlww8/XJMnT5bjOJKksWPHeqrPzJkz1adPHyUnJ8vn8yk3N7fG8y1cuFB33nmndu7cWe1n/kbbt28P2boAAPA6hnQAgGv69eunsrIyffnllzX+/N1339Xbb7+tm2++WR07dlRGRoY++eQTvfTSS1XO99VXX2nKlCnKy8urcvqwYcP0ySef6Pbbbw/b3xBuTzzxhI455hgVFRXpr3/9q9577z09/PDDOuKIIzR//vwqg75X+mzbtk2jR4/WYYcdpnfeeUeffPKJunfvXuN5Fy5cqD/+8Y81DukAADRFcW4vAADQdPXr10+StHLlSuXk5FT5WVlZmSZPnqzOnTvrxhtv1Lhx45SYmKijjz662nYWL14sSRo0aFCV01u2bKmjjz5aX3zxRZj+gvD6/vvvNWHCBF100UXVBu9f/epXqqioqHKaV/p89dVXKi0t1a9//WsNGzYspNtuCvbs2aOUlBS3lwEAcAmvpAMAXHPgkP5zjz/+uFavXq1p06YpKSmp1m0MGjRIv/rVryRJ3bt3l8/nU2pqamA38GB88803uuyyy9StWzelpKSoQ4cOGjlypFasWFHlfP7dsFetWqWLL75Y6enpateunS6//HLl5+dX2+5bb72lAQMGKDExUV26dNEDDzxQr/XMnTtXJSUlGj58eI0/j4k5+D/joewjSR999JFOPvlkpaamKiUlRUOHDtVbb70V+PnYsWN17LHHSpJGjRoln8+nE044ocZt3XnnnbrhhhskSV26dAnsdj937twq5/vhhx8O2vnrr7/WJZdcorZt2yoxMVG9evXSo48+Wq+/KZjrs76/Z+zYsercuXOtv+vn3y9ZskTnn3++WrZsqcMOOyzw84P1Dnb9AADv45V0AIBrWrdurYyMjGpD+k8//aQ777xTJ598ss4999w6t/Hkk09q3LhxqqioCAxL/vdBB2vz5s1q1aqV7r33XrVp00Y//vijnn/+eR111FFaunSpevToUeX85513nkaNGqUrrrhCK1as0C233CJJeuaZZwLnef/99/XLX/5SQ4YM0T/+8Q+Vl5frvvvu0w8//HDQ9aSmpkqSpk+frjZt2ujkk0+u8wmLmoSyz7x583TqqaeqX79+evrpp5WYmKgZM2Zo5MiRevnllzVq1Cj94Q9/0JFHHqnx48frnnvu0Yknnqi0tLQat3fllVfqxx9/1N/+9je99tprat++vSSpd+/eVc53sM6rV6/W0KFD1bFjR02bNk0ZGRl69913NWHCBG3fvl1Tpkyp199n9Xtqcu655+qiiy7SuHHjtHv3bkn16x3M+gEAEcIBAMBFw4cPdw477LAqp02YMMGJi4tzVq5cGTjt0ksvdTp16lTjNtq2betMmDCh1t/x7LPPOpKcRYsWBbW2srIyp6SkxOnWrZszadKkwOlTpkxxJDn33XdflfNfffXVTlJSklNRURE47aijjnIyMzOdvXv3Bk4rKChwDjnkEOdg/wyXlZU55557riPJkeQkJiY6J554ovP44487xcXFVc5r0efoo4922rZt6xQWFlZZY9++fZ2srKzA3/3hhx86kpx//etfdW7PcRzn/vvvdyQ5a9eurfaz+nY+7bTTnKysLCc/P7/K+a655honKSnJ+fHHH+tcQzh+T23Xh/93/fz7O+64o9p569s7mNsjAMD72N0dAOCqnJwcrV27Vnv27JEkffnll3rsscc0fvx49enT56CX37hxo7Zu3Vrt/dYNUVZWpnvuuUe9e/dWQkKC4uLilJCQoK+//lpr1qypdv6zzjqryvf9+vVTUVGRtm7dKknavXu3Fi1apHPPPbfK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h/T58+dr5MiRyszMlM/n06xZsw56mXnz5mnQoEFKSkrSoYceqscffzz8CwUAAAAABKVfv36aMmVKjT+755571LJlS23bts14Vd7n6pC+e/du9e/fX4888ki9zr927VqdccYZOu6447R06VLdeuutmjBhgl599dUwrxQAAAAAEIx+/fppxYoV1U7fsmWLpk6dqj/+8Y9q06aNCyvzNlc/gm3EiBEaMWJEvc//+OOPq2PHjpo+fbokqVevXvr888/1wAMP6Lzzzgvul+/eLQVzWPzERCluX66yMqm4WIqJkZKTq24zWAkJUnx85f8vL5eKiiSfTzrw4xX27JEcJ7jtxsdXbluSKiqkvXsr/3+zZvvPs3dv5c+CERdX2UKqXNOePdW3W1RU+bcEIzZWSkra/72/ZUpKZQ+psnlZWXDbre06Sk6u/JkklZRIpaXBbbe26ygpaf/tqrS0ctvBquk6qun215jt+q+jmm5/warpOqrt9heMmq6j2m5/wajpOqrt9hcMHiMq8RhRiceI/XiMqMRjRCUeIyrxGLEfjxGV6vMYUV4e/H3D59vfwXH232cPnIOC3WZ9t1tRoZw+ffT0s89W+x233nKLOnXqpKt/+9uqP6vndoN+TDtwu9L+3xkTs//2F6rtVlRUfWz03/6CuV04HiHJef311+s8z3HHHedMmDChymmvvfaaExcX55SUlNR4maKiIic/Pz/wtXHjRkeSk195FdT/65//3L/Rf/6z8rRhw6r+statg9um5DiPPLL/8h9+WHla795Vt9u7d/DbnTJl/+VXrqw8rXXrqtsdNiz47V599f7Lb926//QDnX9+8Ns9//yq2/CfvnXr/tOuvjr47dZ2Ha1cuf+0KVOC325t19GHH+4/7ZFHgt9ubddRTbe/YL9quo5quv0F+1XTdVTT7S/Yr5quo9puf8F81XQd1Xb7C+aLx4i6r6MD8RhRiceISjxG7MdjRCUeIyrxGFGJxwhn7969zurVq529S5Y4zqJF+7/mzz/413ffOc6uXZVfeXmO88knjrNiReXvKS2tPP3Abda13QPP8/33+9e7Z0/laUuXVu3wxRfOW9OnOzExMc6eBQsCl13y4otOTEyM8/6MGdV/97p1+y9fUrL/9AN98031yx3s65tvqm7Df/qBM+S6dcFv94svqmx275Ilzuq333b2Ll9e7faXLzmS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6bzzzqtzu9w/XeSg3o488khn3LhxVU7r2bOnc/PNN9d4/htvvNHp2bNnldN++9vfOkcffXTY1oiG27p1qyPJmTdvXq3n+fDDDx1Jzk8//WS3MNTLlClTnP79+9f7/Nw/I8u1117rHHbYYU5FRUWNP+e+6W2SnNdffz3wfUVFhZORkeHce++9gdOKioqc9PR05/HHH691OxdeeKFz+umnVznttNNOcy666KKQrxm1+/n1WZP//e9/jiRn/fr1tZ7n2WefddLT00O7OAStpuvz0ksvdX75y18GtR3un95Qn/vnL3/5S+ekk06q8zzcP93FK+n1VFJSosWLF2v48OFVTh8+fLgWLlxY42U++eSTauc/7bTT9Pnnn6u0tDRsa0XD5OfnS5IOOeSQg5534MCBat++vU4++WR9+OGH4V4a6unrr79WZmamunTpoosuukjfffddrefl/hk5SkpK9OKLL+ryyy+Xz+er87zcNyPD2rVrtWXLlir3wcTERA0bNqzWf1Ol2u+3dV0G7sjPz5fP51OLFi3qPN+uXbvUqVMnZWVl6Re/+IWWLl1qs0Ac1Ny5c9W2bVt1795dv/nNb7R169Y6z8/9MzL88MMPeuutt3TFFVcc9LzcP93DkF5P27dvV3l5udq1a1fl9Hbt2mnLli01XmbLli01nr+srEzbt28P21oRPMdxNHnyZB177LHq27dvredr3769nnzySb366qt67bXX1KNHD5188smaP3++4WpRk6OOOkovvPCC3n33Xf3f//2ftmzZoqFDh2rHjh01np/7Z+SYNWuWdu7cqbFjx9Z6Hu6bkcX/72Yw/6b6LxfsZWCvqKhIN998sy655BKlpaXVer6ePXvqueee0xtvvKGXX35ZSUlJOuaYY/T1118brhY1GTFihP7+97/rgw8+0LRp07Ro0SKddNJJKi4urvUy3D8jw/PPP6/U1FSde+65dZ6P+6e74txeQKT5+as4juPU+cpOTeev6XS465prrtHy5cv10Ucf1Xm+Hj16qEePHoHvhwwZoo0bN+qBBx7Q8ccfH+5log4jRowI/P+cnBwNGTJEhx12mJ5//nlNnjy5xstw/4wMTz/9tEaMGKHMzMxaz8N9MzIF+29qQy8DO6WlpbroootUUVGhGTNm1Hneo48+usrByI455hgdfvjh+tvf/qaHH3443EtFHUaNGhX4/3379tXgwYPVqVMnvfXWW3UOd9w/ve+ZZ57Rr371q4O+t5z7p7t4Jb2eWrdurdjY2GrPBm7durXas4Z+GRkZNZ4/Li5OrVq1CttaEZzf//73euONN/Thhx8qKysr6MsfffTRPKvoQc2aNVNOTk6t1w33z8iwfv16/fe//9WVV14Z9GW5b3qX/5MXgvk31X+5YC8DO6Wlpbrwwgu1du1azZkzp85X0WsSExOjI444gvutB7Vv316dOnWq87rh/ul9CxYs0Jdfftmgf1O5f9piSK+nhIQEDRo0KHCEYb85c+Zo6NChNV5myJAh1c7/3nvvafDgwYqPjw/bWlE/juPommuu0WuvvaYPPvhAXbp0adB2li5dqvbt24d4dWis4uJirVmzptbrhvtnZHj22WfVtm1bnXnmmUFflvumd3Xp0kUZGRlV7oMlJSWaN29erf+mSrXfb+u6DGz4B/Svv/5a//3vfxv0ZKfjOMrNzeV+60E7duzQxo0b67xuuH9639NPP61Bgwapf//+QV+W+6cxt45YF4n+8Y9/OPHx8c7TTz/trF692pk4caLTrFkzZ926dY7jOM7NN9/sjB49OnD+7777zklJSXEmTZrkrF692nn66aed+Ph455VXXnHrT8ABfve73znp6enO3Llznby8vMDXnj17Auf5+XX617/+1Xn99dedr776ylm5cqVz8803O5KcV1991Y0/AQe47rrrnLlz5zrfffed8+mnnzq/+MUvnNTUVO6fEay8vNzp2LGjc9NNN1X7GfdN7yssLHSWLl3qLF261JHkPPjgg87SpUsDR/u+9957nfT0dOe1115zVqxY4Vx88cVO+/btnYKCgsA2Ro8eXeUTVD7++GMnNjbWuffee501a9Y49957rxMXF+d8+umn5n9fU1PX9VlaWuqcddZZTlZWlpObm1vl39Ti4uLANn5+fd55553OO++843z77bfO0qVLncsuu8yJi4tzPvvsMzf+xCalruuzsLDQue6665yFCxc6a9eudT788ENnyJAhTocOHbh/etTBHm8dx3Hy8/OdlJQU57HHHqtxG9w/vYUhPUiPPvqo06lTJychIcE5/PDDq3xc16WXXuoMGzasyvnnzp3rDBw40ElISHA6d+5c6x0D9iTV+PXss88GzvPz6/Qvf/mLc9hhhzlJSUlOy5YtnWOPPdZ566237BeP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7dq1S/fee69OP/10vffeezrnnHN07rnnat68eW4vL2o9/PDD6t27t7KyspSQkKDTTz9dM2bM0LHHHuv20jwvzu0FRBOfz1fle8dxqp2G0Lvmmmu0fPlyffTRR24vJapt3LhR1157rd577z3ev2WkoqJCgwcP1j333CNJGjhwoFatWqXHHntMY8aMcXl10WnmzJl68cUX9dJLL6lPnz7Kzc3VxIkTlZmZqUsvvdTt5TUZ/HvqjtLSUl100UWqqKjQjBkz3F5O1Fq8eLEeeughLVmyhNu1Ef/BP3/5y19q0qRJkqQBAwZo4cKFevzxxzVs2DA3lxe1Hn74YX366ad644031KlTJ82fP19XX3212rdvzx6ZB8GQHgKtW7dWbGxstWf5t27dWu3VAITW73//e73xxhuaP3++srKy3F5OVFu8eLG2bt2qQYMGBU4rLy/X/Pnz9cgjj6i4uFixsbEurjD6tG/fXr17965yWq9evfTqq6+6tKLod8MNN+jmm2/WRRddJEnKycnR+vXrNXXqVIZ0AxkZGZIqX1Fv37594HT+PQ2/0tJSXXjhhVq7dq0++OADXkUPowULFmjr1q3q2LFj4LTy8nJdd911mj59utatW+fe4qJU69atFRcXV+O/qbzIEx579+7Vrbfeqtdff11nnnmmJKlfv37Kzc3VAw88wJB+EOzuHgIJCQkaNGiQ5syZU+X0OXPmaOjQoS6tKro5jqNrrrlGr732mj744AN16dLF7SVFvZNPPlkrVqxQbm5u4Gvw4MH61a9+pdzcXAb0MDjmmGOqfbTgV199pU6dOrm0oui3Z88excRU/acxNjaWj2Az0qVLF2VkZFT597SkpETz5s3j39Mw8g/oX3/9tf773/+qVatWbi8pqo0ePVrLly+v8u9pZmambrjhBr377rtuLy8qJSQk6IgjjuDfVEOlpaUqLS3l39QG4pX0EJk8ebJGjx6twYMHa8iQIXryySe1YcMGjRs3zu2lRaXx48frpZde0r///W+lpqYG9mJIT09XcnKyy6uLTqmpqdXe89+sWTO1atWKYwGEyaRJkzR06FDdc889uvDCC/W///1PTz75pJ588km3lxa1Ro4cqT//+c/q2LGj+vTpo6VLl+rBBx/U5Zdf7vbSosauXbv0zTffBL5fu3atcnNzdcghh6hjx46aOHGi7rnnHnXr1k3dunXTPffco5SUFF1yySUurjqy1dU8MzNT559/vpYsWaL//Oc/Ki8vD/ybesghhyghIcGtZUe0g93Of/5ESHx8vDIyMtSjRw/rpUaNgzW/4YYbNGrUKB1//PE68cQT9c477+jNN9/U3Llz3Vt0hDtY82HDhumGG25QcnKyOnXqpHnz5umFF17Qgw8+6OKqI4Srx5aPMo8++qjTqVMnJyEhwTn88MP5OLAwklTj17PPPuv20poUPoIt/N58802nb9++TmJiotOzZ0/nySefdHtJUa2goMC59tprnY4dOzpJSUnOoYce6tx2221OcXGx20uLGh9++GGNj9+XXnqp4ziVH8M2ZcoUJyMjw0lMTHSOP/54Z8WKFe4uOsLV1Xzt2rW1/pv64Ycfur30iHWw2/nP8RFsjVef5k8//bTTtWtXJykpyenfv78za9Ys9xYcBQ7WPC8vzxk7dqyTmZnpJCUlOT169HCmTZvmVFRUuLvwCOBzHMcJ67MAAAAAAACgXnhPOgAAAAAAHsGQDgAAAACARzCkAwAAAADgEQzpAAAAAAB4BEM6AAAAAAAewZAOAAAAAIBHMKQDAAAAAOARDOkAAAAAAHgEQzoAAC4ZO3aszj777LD/njvvvFMDBgzwzHYAAEDtGNIBAHDJQw89pOeee87tZdTI5/Np1qxZVU67/vrr9f7777uzoH14ogAAEO3i3F4AAABNVXp6uttLCErz5s3VvHlzt5cBAEBU45V0AADC6JVXXlFOTo6Sk5PVqlUrnXLKKdq9e7ek6ru7n3DCCfr973+viRMnqmXLlmrXrp2efPJJ7d69W5dddplSU1N12GGH6e233w5c5rnnnlOLFi2q/M5Zs2bJ5/PVuqZFixbp1FNPVevWrZWenq5hw4ZpyZIlgZ937txZknTOOefI5/MFvv/5q9j+9T/wwANq3769WrVqpfHjx6u0tDRwnry8PJ155plKTk5Wly5d9NJLL6lz586aPn16reubO3eujjzySDVr1kwtWrTQMccco/Xr1+u5557TH//4Ry1btkw+n08+ny+wJ0J+fr6uuuoqtW3bVmlpaTrppJO0bNmywDb9a3/iiSeUnZ2tlJQUXXDBBdq5c2et6wAAwA0M6QAAhEleXp4uvvhiXX755VqzZo3mzp2rc889V47j1HqZ559/Xq1bt9b//vc//f73v9fvfvc7XXDBBRo6dKiWLFmi0047TaNHj9aePXsavK7CwkJdeumlWrBggT799FN169ZNZ5xxhgoLCyVVDvGS9OyzzyovLy/wfU0+/PBDffvtt/rwww/1/PPP67nnnquyC/+YMWO0efNmzZ07V6+++qqefPJJbd26tdbtlZWV6eyzz9awYcO0fPlyffLJJ7rqqqvk8/k0atQoXXfdderTp4/y8vKUl5enUaNGyXEcnXnmmdqyZYtmz56txYsX6/DDD9fJJ5+sH3/8MbDtb775Rv/85z/15ptv6p133lFubq7Gjx/f4I4AAIQDu7sDABAmeXl5Kisr07nnnqtOnTpJknJycuq8TP/+/XX77bdLkm655Rbde++9at26tX7zm99Iku644w499thjWr58uY4++ugGreukk06q8v0TTzyhli1bat68efrFL36hNm3aSJJatGihjIyMOrfVsmVLPfLII4qNjVXPnj115pln6v3339dvfvMbffHFF/rvf/+rRYsWafDgwZKkp556St26dat1ewUFBcrPz9cvfvELHXbYYZKkXr16BX7evHlzxcXFVVnXBx98oBUrVmjr1q1KTEyUJD3wwAOaNWuWXnnlFV111VWSpKKiIj3//PPKysqSJP3tb3/TmWeeqWnTph307wQAwAqvpAMAECb9+/fXySefrJycHF1wwQX6v//7P/300091XqZfv36B/x8bG6tWrVpVGezbtWsnSXW+Gn0wW7du1bhx49S9e3elp6crPT1du3bt0oYNG4LeVp8+fRQbGxv4vn379oG1ffnll4qLi9Phhx8e+HnXrl3VsmXLWrd3yCGHaOzYsTrttNM0cuRIPfTQQ8rLy6tzDYsXL9auXbvUqlWrwPvmmzdvrrVr1+rbb78NnK9jx46BAV2ShgwZooqKCn355ZdB/90AAIQLQzoAAGESGxurOXPm6O2331bv3r31t7/9TT169NDatWtrvUx8fHyV730+X5XT/O81r6iokCTFxMRU233+wPeE12Ts2LFavHixpk+froULFyo3N1etWrVSSUlJUH9fbev1r6223frr2t1fqtzN/pNPPtHQoUM1c+ZMde/eXZ9++mmt56+oqFD79u2Vm5tb5evLL7/UDTfcUOvl/C3rev8+AADWGNIBAAgjn8+nY445Rn/84x+1dOlSJSQk6PXXXw/Z9tu0aaPCwsLAwegkKTc3t87LLFiwQBMmTNAZZ5yhPn36KDExUdu3b69ynvj4eJWXlzdqbT179lRZWZmWLl0aOO2bb76p18HaBg4cqFtuuUULFy5U37599dJLL0mSEhISqq3r8MMP15YtWxQXF6euXbtW+WrdunXgfBs2bNDmzZsD33/yySeKiYlR9+7dG/V3AgAQSgzpAACEyWeffaZ77rlHn3/+uTZs2KDXXntN27Ztq/Ie68Y66qijlJKSoltvvVXffPONXnrppYN+9nrXrl31//7f/9OaNWv02Wef6Ve/+pWSk5OrnKdz5856//33tWXLloPuol+bnj176pRTTtFVV12l//3vf1q6dKmuuuoqJScn1/rq9dq1a3XLLbfok08+0fr16/Xee+/pq6++CjTr3Lmz1q5dq9zcXG3fvl3FxcU65ZRTNGTIEJ199tl69913tW7dOi1cuFC33367Pv/888C2k5KSdOmll2rZsmWBJyouvPBC3o8OAPAUhnQAAMIkLS1N8+fP1xlnnKHu3bvr9ttv17Rp0zRixIiQ/Y5DDjlEL774ombPnq2cnBy9/PLLuvPOO+u8zDPPPKOffvpJAwcO1OjRozVhwgS1bdu2ynmmTZumOXPmKDs7WwMHDmzw+l544QW1a9dOxx9/vM455xz95je/UWpqqpKSkmo8f0pKir744gudd9556t69u6666ipdc801+u1vfytJOu+883T66afrxBNPVJs2bfTyyy/L5/Np9uzZOv7443X55Zere/fuuuii/9/eHds2CEUBFH0ZwCMgMYBZgMKNJQpKV5mEgoop2MA9AyCPgiiQWIDORVJYcpPCUhTiX5yzAJ/yov8enzHP83OGP+LxceJyuURd11FVVRyPx+j7/tfvBgB7+Ph6NRgGAPBHlmWJLMtiHMc4n8//9tyu62IYhpejAADwbn7BBgDs5na7xbZtURRFrOsaTdNEnudxOp3efTQASJJIBwB2c7/fo23bmKYpDodDlGUZ1+v1x1Z4AODBdXcAAABIhMVxAAAAkAiRDgAAAIkQ6QAAAJAIkQ4AAACJEOkAAACQCJEOAAAAiRDpAAAAkAiRDgAAAIn4BqtIOxV5yJz0AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1200x800 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 生成一个长度为4的向量\n",
    "x = torch.rand(size=[4])\n",
    "print(f\"输入 = {x}\")\n",
    "# 新建一个全连接层\n",
    "linear_layer = nn.Linear(in_features=4, out_features=1, bias=False)\n",
    "print(\"权重 = \", linear_layer.weight) # 输出权重\n",
    "# 复位脉冲神经元层\n",
    "if_layer.reset()\n",
    "\n",
    "T = 20\n",
    "s_list = [] # 记录输出脉冲\n",
    "v_list = [] # 记录输出膜电压\n",
    "# 按照时间顺序逐步进行\n",
    "for t in range(T):\n",
    "    y = linear_layer(x) # 先通过全连接层模拟加权求和\n",
    "    s_list.append(if_layer(y)) # 将加权求和后的结果输入脉冲神经元层\n",
    "    v_list.append(if_layer.v)\n",
    "\n",
    "print(s_list) # 输出脉冲\n",
    "print(v_list) # 输出膜电压\n",
    "\n",
    "dpi = 100\n",
    "figsize = (12, 8)\n",
    "visualizing.plot_one_neuron_v_s(torch.cat(v_list).detach().numpy(), torch.cat(s_list).detach().numpy(), v_threshold=if_layer.v_threshold,\n",
    "                                v_reset=if_layer.v_reset,\n",
    "                                figsize=figsize, dpi=dpi)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "上面我们的脉冲神经网络层if_layer只有1个神经元，如果我们希望有多个神经元输出，那我们需要调节if_layer前的全连接层linear_layer中的输出神经元数量。因为脉冲神经元层的神经元数量是由前一层的神经元数量决定的。\n",
    "\n",
    "例如，当我们希望生成一个10输入3输出的脉冲神经元层，那么就需要修改全连接层linear_layer的参数`in_features=10`以及`out_features=3`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "输入 = tensor([0.7592, 0.7624, 0.3849, 0.8033, 0.8596, 0.9028, 0.7756, 0.1528, 0.6186,\n",
      "        0.1167])\n",
      "权重 =  Parameter containing:\n",
      "tensor([[ 1.7404e-01,  2.3748e-02,  8.8470e-02,  1.4896e-01,  1.6290e-01,\n",
      "         -2.6387e-01, -6.5148e-05, -2.0949e-01, -2.9482e-01, -2.7508e-01],\n",
      "        [ 1.5172e-01, -2.6602e-01,  2.1748e-01,  2.8692e-01,  2.7649e-01,\n",
      "          5.3322e-04, -7.4024e-03, -4.1608e-02,  2.1658e-01,  2.9824e-01],\n",
      "        [ 3.0818e-01, -1.7455e-01,  2.9994e-01,  2.3743e-02,  2.0361e-02,\n",
      "          9.2077e-02, -1.3603e-02,  1.7773e-01, -2.9497e-02,  2.9832e-01]],\n",
      "       requires_grad=True)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA64AAAK7CAYAAADyatLuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABdVUlEQVR4nO3deXgUVfr//U8nkAVJWpOQECAEFNlkB4HggiCGVRRUcJgJqygi+gXUEVRGYBT8MeKgMmwqoAKKMyOKygTDKgooEDLoiEEUDEJCRCABNVt3PX/Q6cc2a0Oorg7v13XVNfbpqnPurkLH2/vUOTbDMAwBAAAAAGBRAb4OAAAAAACA8pC4AgAAAAAsjcQVAAAAAGBpJK4AAAAAAEsjcQUAAAAAWBqJKwAAAADA0khcAQAAAACWRuIKAAAAALA0ElcAAAAAgKWRuAJANXPTTTepVatWvg7D8o4dO6bp06crLS3NlPEWLFig5cuXl2g/fPiwbDZbqd9V5EKuBQDAn5C4AgAuSceOHdOMGTN8nrjGxsZqx44d6t+/vylxAADgj2r4OgAAgHU4HA4VFRUpODjY16FcMoKDg9W1a1dfhwEAgKVRcQWASpg+fbpsNpv27dunu+66S3a7XREREZo8ebKKioqUnp6uPn36KCwsTI0aNdKcOXNK9JGbm6tHHnlEjRs3VlBQkOrXr6+JEyfq559/9jjPZrNpwoQJWrZsmZo1a6bQ0FB16tRJO3fulGEY+tvf/qbGjRurdu3a6tmzpw4ePFhqzNu2bVPXrl0VGhqq+vXra9q0aXI4HO7vi6eZzpkzR08//bQaN26s4OBgbd68WXl5eXr44YfVrl07929NSEjQe++9V2Kc4njfeOMNtWjRQrVq1VLbtm31wQcflDj3m2++0bBhwxQdHa3g4GC1aNFC//jHPyr1DIrHWbx4sZo2barg4GC1bNlSb731Volzv/zyS91222264oorFBISonbt2um1115zf79lyxZde+21kqRRo0bJZrPJZrNp+vTp7nN2796tgQMHKiIiQiEhIWrfvr3efvttj3GWL18um82mzZs36/7771dUVJQiIyM1ePBgHTt2zH1eo0aN9L///U9bt251j9WoUSOP5/DbauzBgwc1atQoXX311apVq5bq16+vW2+9VV988UWF9+nHH3/Uvffeq7i4OAUHB6tOnTq67rrrtGHDhsrcZgAALImKKwB4YciQIfrTn/6k++67TykpKZozZ44KCwu1YcMGjR8/Xo888ohWrVqlxx57TE2aNNHgwYMlSb/88ou6d++uH374QY8//rjatGmj//3vf/rLX/6iL774Qhs2bJDNZnOP88EHH2jv3r169tlnZbPZ9Nhjj6l///4aMWKEvvvuO82fP185OTmaPHmy7rjjDqWlpXlcn5WVpbvvvltTpkzRzJkz9eGHH+rpp5/WqVOnNH/+fI/f9OKLL6pp06Z67rnnFB4erquvvlr5+fk6efKkHnnkEdWvX18FBQXasGGDBg8erGXLlmn48OEefXz44YfatWuXZs6cqdq1a2vOnDkaNGiQ0tPTdeWVV0qSvvrqK3Xr1k0NGzbU3LlzVbduXa1fv14PPfSQTpw4oaeeeqrC+7927Vpt3rxZM2fO1GWXXaYFCxboD3/4g2rUqKE777xTkpSenq5u3bopOjpaL774oiIjI7VixQqNHDlSx48f15///Gd16NBBy5Yt06hRo/Tkk0+6p+k2aNBAkrR582b16dNHXbp00aJFi2S32/XWW29p6NCh+uWXXzRy5EiPuO655x71799fq1at0pEjR/Too4/qT3/6kzZt2iRJWrNmje68807Z7XYtWLBAksqtah87dkyRkZF69tlnVadOHZ08eVKvvfaaunTpor1796pZs2ZlXpuUlKTU1FQ988wzatq0qU6fPq3U1FT99NNPFd5fAAAsywAAVOipp54yJBlz5871aG/Xrp0hyXjnnXfcbYWFhUadOnWMwYMHu9tmz55tBAQEGLt27fK4/l//+pchyVi3bp27TZJRt25d4+zZs+62d99915BktGvXznA6ne72efPmGZKMffv2udu6d+9uSDLee+89j7HGjh1rBAQEGN9//71hGIZx6NAhQ5Jx1VVXGQUFBeX+/qKiIqOwsNAYM2aM0b59e4/vJBkxMTFGbm6uuy0rK8sICAgwZs+e7W7r3bu30aBBAyMnJ8fj+gkTJhghISHGyZMny41BkhEaGmpkZWV5xNW8eXOjSZMm7ra7777bCA4ONjIyMjyu79u3r1GrVi3j9OnThmEYxq5duwxJxrJly0qM1bx5c6N9+/ZGYWGhR/uAAQOM2NhYw+FwGIZhGMuWLTMkGePHj/c4b86cOYYkIzMz0912zTXXGN27dy8xVvFzKC2O3/7OgoIC4+qrrzYmTZpU7rW1a9c2Jk6cWGZfAAD4I6YKA4AXBgwY4PG5RYsWstls6tu3r7utRo0aatKkib7//nt32wcffKBWrVqpXbt2Kioqch+9e/eWzWbTli1bPPrt0aOHLrvsMo9xJKlv374eldXi9t+OJUlhYWEaOHCgR9uwYcPkdDr18ccfe7QPHDhQNWvWLPFb//nPf+q6665T7dq1VaNGDdWsWVOvvvqq9u/fX+LcHj16KCwszP05JiZG0dHR7rjy8vK0ceNGDRo0SLVq1fK4B/369VNeXp527txZot/fu/nmmxUTE+P+HBgYqKFDh+rgwYP64YcfJEmbNm3SzTffrLi4OI9rR44cqV9++UU7duwod4yDBw/q66+/1h//+EdJKhFrZmam0tPTPa75/b1u06aNpJLPpbKKioo0a9YstWzZUkFBQapRo4aCgoL0zTfflHr/f6tz585avny5nn76ae3cuVOFhYXnFQMAAFZC4goAXoiIiPD4HBQUpFq1aikkJKREe15envvz8ePHtW/fPtWsWdPjCAsLk2EYOnHiRIXjlNf+27EkeSR3xerWrStJJaaMxsbGljj3nXfe0ZAhQ1S/fn2tWLFCO3bs0K5duzR69OgSY0lSZGRkibbg4GD9+uuv7jGLior00ksvlbgH/fr1k6QS96A0xb+hvN/1008/lfqb6tWr53FeWY4fPy5JeuSRR0rEOn78+FJj/f3vL54GXPz7vTV58mRNmzZNt99+u95//3199tln2rVrl9q2bVthn6tXr9aIESP0yiuvKCEhQRERERo+fLiysrLOKxYAAKyAd1wBwARRUVEKDQ3V0qVLy/y+KhUnX79VnLj8Psn6bQW32IoVK9S4cWOtXr3a4/v8/PzziueKK65QYGCgkpKS9MADD5R6TuPGjSvsp7Tk6/e/KzIyUpmZmSXOK14sqaJ7Xfz91KlT3e8o/15575hWhRUrVmj48OGaNWuWR/uJEyd0+eWXl3ttVFSU5s2bp3nz5ikjI0Nr167VlClTlJ2dreTk5IsYNQAAFw+JKwCYYMCAAZo1a5YiIyMrlaBdqDNnzmjt2rUeU1hXrVqlgIAA3XjjjRVeb7PZFBQUVGLBp9JWFa6MWrVqqUePHtq7d6/atGnjrhR7a+PGjTp+/Li7ouxwOLR69WpdddVV7oWVbr75Zq1Zs0bHjh1zV1kl6fXXX1etWrXcW8+UVRVt1qyZrr76av33v/8tkTheiN9WoCtis9lKLN704Ycf6ujRo2rSpEmlx2zYsKEmTJigjRs36tNPP/UqXgAArITEFQBMMHHiRP373//WjTfeqEmTJqlNmzZyOp3KyMjQRx99pIcfflhdunSpsvEiIyN1//33KyMjQ02bNtW6dev08ssv6/7771fDhg0rvH7AgAF65513NH78eN155506cuSI/vrXvyo2NlbffPPNecX0wgsv6Prrr9cNN9yg+++/X40aNdKZM2d08OBBvf/+++4VeMsTFRWlnj17atq0ae5Vhb/++muPLXGeeuopffDBB+rRo4f+8pe/KCIiQitXrtSHH36oOXPmyG63S5KuuuoqhYaGauXKlWrRooVq166tevXqqV69elq8eLH69u2r3r17a+TIkapfv75Onjyp/fv3KzU1Vf/85z+9/v2tW7fWW2+9pdWrV+vKK69USEiIWrduXeq5AwYM0PLly9W8eXO1adNGe/bs0d/+9jd3cl6WnJwc9ejRQ8OGDVPz5s0VFhamXbt2KTk5uczqMQAA/oDEFQBMcNlll2nbtm169tlntWTJEh06dEihoaFq2LChevXq5d7Ts6rUrVtX//jHP/TII4/oiy++UEREhB5//HHNmDGjUtePGjVK2dnZWrRokZYuXaorr7xSU6ZM0Q8//FDpPn6vZcuWSk1N1V//+lc9+eSTys7O1uWXX66rr77a/Z5rRQYOHKhrrrlGTz75pDIyMnTVVVdp5cqVGjp0qPucZs2aafv27Xr88cf1wAMP6Ndff1WLFi20bNkyj21satWqpaVLl2rGjBlKTExUYWGhnnrqKU2fPl09evTQ559/rmeeeUYTJ07UqVOnFBkZqZYtW2rIkCHn9ftnzJihzMxMjR07VmfOnFF8fLwOHz5c6rkvvPCCatasqdmzZ+vs2bPq0KGD3nnnHT355JPljhESEqIuXbrojTfe0OHDh1VYWKiGDRvqscce05///OfzihsAACuwGYZh+DoIAAAqYrPZ9MADD5TYhxYAAFR/rCoMAAAAALA0ElcAAAAAgKXxjisAwC/wZgsAAJcuKq4AAAAAAEsjcQUAAAAAWBqJKwAAAADA0vz6HVen06ljx44pLCxMNpvN1+EAAAAAlzTDMHTmzBnVq1dPAQH+VyPLy8tTQUGB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pVFxBQAAAIDfYsEky6HiCgAAAACwNBJXAAAAAIClMVUYAAAAAFxYnMmaqLgCAAAAACyNiisAAAAAFDNk7uJMLARVKVRcAQAAAACW5nXi+r///a/M75KTky8oGAAAAADwLZsPDlTE68S1U6dOeumllzza8vPzNWHCBA0aNKjKAgMAAAAAQDqPxHXlypWaMWOG+vbtq6ysLKWlpal9+/batGmTPv3004sRIwAAAADgEuZ14jp48GDt27dPRUVFatWqlRISEnTTTTdpz5496tChw8WIEQAAAADMYfjgQIXOa3Emh8OhgoICORwOORwO1a1bV8HBwVUdGwAAAAAA3ieub731ltq0aSO73a4DBw7oww8/1JIlS3TDDTfou+++uxgxAgAAAIA5qLhakteJ65gxYzRr1iytXbtWderU0S233KIvvvhC9evXV7t27S5CiAAAAACAS1kNby9ITU1Vs2bNPNquuOIKvf3223rjjTeqLDAAAAAAAKTzqLg2a9ZMRUVF2rBhgxYvXqwzZ85Iko4dO8Z2OAAAAAD8m2Ez/0CFvK64fv/99+rTp48yMjKUn5+vW265RWFhYZozZ47y8vK0aNGiixEnAAAAAOAS5XXF9f/+7//UqVMnnTp1SqGhoe72QYMGaePGjVUaHAAAAACYyTDMP6qr06dP65VXXtHUqVN18uRJSedePT169KjXfXldcf3kk0/06aefKigoyKM9Pj7+vAIAAAAAAFQv+/btU69evWS323X48GGNHTtWERERWrNmjb7//nu9/vrrXvXndcXV6XTK4XCUaP/hhx8UFhbmbXcAAAAAYB1sh1MlJk+erJEjR+qbb75RSEiIu71v3776+OOPve7P68T1lltu0bx589yfbTabzp49q6eeekr9+vXzOgAAAAAAQPWya9cu3XfffSXa69evr6ysLK/783qq8N///nf16NFDLVu2VF5enoYNG6ZvvvlGUVFRevPNN70OAAAAAABQvYSEhCg3N7dEe3p6uurUqeN1f14nrvXq1VNaWprefPNNpaamyul0asyYMfrjH//osVgTAAAAAPgds7eoqabb4dx2222aOXOm3n77bUnnZupmZGRoypQpuuOOO7zuz+vEVZJCQ0M1evRojR49+nwuBwAAAABUY88995z69eun6Oho/frrr+revbuysrKUkJCgZ555xuv+KpW4rl27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VFSUBg0a5MOoL23lPbOGDRuqe/fuevTRRxUaGqr4+Hht3bpVr7/+up5//nkfRg1UcwaMf/zjH0Z8fLwRFBRkdOjQwdi6dauvQ0IZRo8e7X5WderUMW6++Wbjo48+8nVYqMD7779vtGrVyggODjaaN29uLFmyxNchoRyrV682rrzySiMoKMioW7eu8cADDxinT5/2dVhw2bx5syGpxDFixAjj0KFDpX4nydi8ebOvQ79klffMfvnlFyMxMdGoU6eOUbNmTaNhw4bGiBEjjIyMDF+HfUkr75kZhmFkZmYaI0eONOrVq2eEhIQYzZo1M+bOnWs4nU7fBg5UY5f8Pq4AAAAAAGu7pN9xBQAAAABYH4krAAAAAMDSSFwBAAAAAJZG4goAAAAAsDQSVwAAAACApZG4AgAAAAAsjcQVAAAAAGBpJK4AAAAAAEsjcQWAamjkyJG6/fbbL/o406dPV7t27SzTDwAAqJ5IXAGgGnrhhRe0fPlyX4dRKpvNpnfffdej7ZFHHtHGjRt9E5ALyTMAANZVw9cBAACqnt1u93UIXqldu7Zq167t6zAAAIBFUXEFAD/1r3/9S61bt1ZoaKgiIyPVq1cv/fzzz5JKThW+6aab9OCDD2rixIm64oorFBMToyVLlujnn3/WqFGjFBYWpquuukr/+c9/3NcsX75cl19+uceY7777rmw2W5kx7dq1S7fccouioqJkt9vVvXt3paamur9v1KiRJGnQoEGy2Wzuz7+vdhbH/9xzzyk2NlaRkZF64IEHVFhY6D4nMzNT/fv3V2hoqBo3bqxVq1apUaNGmjdvXpnxbdmyRZ07d9Zll12myy+/XNddd52+//57LV++XDNmzNB///tf2Ww22Ww2d8U6JydH9957r6KjoxUeHq6ePXvqv//9r7vP4tgXL16suLg41apVS3fddZdOnz5dZhwAAMA7JK4A4IcyMzP1hz/8QaNHj9b+/fu1ZcsWDR48WIZhlHnNa6+9pqioKH3++ed68MEHdf/99+uuu+5St27dlJqaqt69eyspKUm//PLLecd15swZjRgxQtu2bdPOnTt19dVXq1+/fjpz5oykc4mtJC1btkyZmZnuz6XZvHmzvv32W23evFmvvfaali9f7jH9efjw4Tp27Ji2bNmif//731qyZImys7PL7K+oqEi33367unfvrn379mnHjh269957ZbPZNHToUD388MO65pprlJmZqczMTA0dOlSGYah///7KysrSunXrtGfPHnXo0EE333yzTp486e774MGDevvtt/X+++8rOTlZaWlpeuCBB877PgIAAE9MFQYAP5SZmamioiINHjxY8fHxkqTWrVuXe03btm315JNPSpKmTp2qZ599VlFRURo7dqwk6S9/+YsWLlyoffv2qWvXrucVV8+ePT0+L168WFdccYW2bt2qAQMGqE6dOpKkyy+/XHXr1i23ryuuuELz589XYGCgmjdvrv79+2vjxo0aO3asvv76a23YsEG7du1Sp06dJEmvvPKKrr766jL7y83NVU5OjgYMGKCrrrpKktSiRQv397Vr11aNGjU84tq0aZO++OILZWdnKzg4WJL03HPP6d1339W//vUv3XvvvZKkvLw8vfbaa2rQoIEk6aWXXlL//v01d+7cCn8nAACoGBVXAPBDbdu21c0336zWrVvrrrvu0ssvv6xTp06Ve02bNm3cfx0YGKjIyEiPZDcmJkaSyq1aViQ7O1vjxo1T06ZNZbfbZbfbdfbsWWVkZHjd1zXXXKPAwED359jYWHds6enpqlGjhjp06OD+vkmTJrriiivK7C8iIkIjR45U7969deutt+qFF15QZmZmuTHs2bNHZ8+eVWRkpPs93Nq1a+vQoUP69ttv3ec1bNjQnbRKUkJCgpxOp9LT073+3QAAoCQSVwDwQ4GBgUpJSdF//vMftWzZUi+99JKaNWumQ4cOlXlNzZo1PT7bbDaPtuJ3V51OpyQpICCgxNTj375jWpqRI0dqz549mjdvnrZv3660tDRFRkaqoKDAq99XVrzFsZU1Jbq8qdLSuSnKO3bsULdu3bR69Wo1bdpUO3fuLPN8p9Op2NhYpaWleRzp6el69NFHy7yu+F6W9z4wAACoPBJXAPBTNptN1113nWbMmKG9e/cqKChIa9asqbL+69SpozNnzrgXfJKktLS0cq/Ztm2bHnroIfXr10/XXHONgoODdeLECY9zatasKYfDcUGxNW/eXEVFRdq7d6+77eDBg5VaEKl9+/aaOnWqtm/frlatWmnVqlWSpKCgoBJxdejQQVlZWapRo4aaNGnicURFRbnPy8jI0LFjx9yfd+zYoYCAADVt2vSCficAADiHxBUA/NBnn32mWbNmaffu3crIyNA777yjH3/80eOdzQvVpUsX1apVS48//rgOHjyoVatWVbg3bJMmTfTGG29o//79+uyzz/THP/5RoaGhHuc0atRIGzduVFZWVoXTm8vSvHlz9erVS/fee68+//xz7d27V/fee69CQ0PLrHIeOnRIU6dO1Y4dO/T999/ro48+0oEDB9z3rFGjRjp06JDS0tJ04sQJ5efnq1evXkpISNDtt9+u9evX6/Dhw9q+fbuefPJJ7d692913SEiIRowYof/+97/u5H3IkCG83woAQBUhcQUAPxQeHq6PP/5Y/fr1U9OmTfXkk09q7ty56tu3b5WNERERoRUrVmjdunVq3bq13nzzTU2fPr3ca5YuXapTp06pffv2SkpK0kMPPaTo6GiPc+bOnauUlBTFxcWpffv25x3f66+/rpiYGN14440aNGiQxo4dq7CwMIWEhJR6fq1atfT111/rjjvuUNOmTXXvvfdqwoQJuu+++yRJd9xxh/r06aMePXqoTp06evPNN2Wz2bRu3TrdeOONGj16tJo2baq7775bhw8fdr8TLJ1L2AcPHqx+/fopMTFRrVq10oIFC877twEAAE82o6IXggAA8AM//PCD4uLitGHDBt18882mjTt9+nS9++67FU6jBgAA54/tcAAAfmnTpk06e/asWrdurczMTP35z39Wo0aNdOONN/o6NAAAUMVIXAEAfqmwsFCPP/64vvvuO4WFhalbt25auXJlidWIAQCA/2OqMAAAAADA0licCQAAAABgaSSuAAAAAABLI3EFAAAAAFgaiSsAAAAAwNJIXAEAAAAAlkbiCgAAAACwNBJXAAAAAIClkbgCAAAAACzt/wNsXI21BP+BKwAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1200x800 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAMWCAYAAAAgRDUeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABPzUlEQVR4nO3deZiVdf3/8dfIjsLIIgIqi7kvKEgqauKKuymVluWSW5lauH1dU6GvYn7VrEyJckkL00pxyQ1xLdEURNIUs1RcQFwBF/bz+8OfUyPrKHwGhsfjuua6Ove5z33e525wzv2c+9xTValUKgEAAACAglaq7wEAAAAAWPGIUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIA8P/tsMMO2WSTTep7jGXWhx9+mHPPPTcPPPBAkecbNmxYLr300vneV1VVlXPPPfczbffzPBYAVnQ33HBDNt5447Ro0SJVVVUZO3Zszj333FRVVS32Nrp165bDDjts6Q25lF1++eW55ppr6nuMBqFxfQ8AACwfPvzwwwwcODDJxwFvaRs2bFiefvrpDBgwYJ77Ro0alTXXXHOpzwAA/Mebb76Zgw8+OLvvvnsuv/zyNGvWLOutt16OPPLI7L777ou9nZtvvjmtW7deipMuXZdffnnat2+/XIe1ZYUoBQBLwJw5czJ79uw0a9asvkdZIWy99db1PQIArHCef/75zJo1K9/61rfSt2/fmuUtW7ZcrF8WffTRR2nRokV69uy5NMesk0qlkunTp6dFixb1PcoKycf3AFiqPjmde9y4cfna176W6urqtG3bNieeeGJmz56d8ePHZ/fdd0+rVq3SrVu3XHjhhfNsY+rUqTn55JPTvXv3NG3aNGussUYGDBiQDz74oNZ6VVVVOe6443L11Vdn/fXXT4sWLdK7d+88+uijqVQq+b//+7907949q6yySnbaaae88MIL85354YcfztZbb50WLVpkjTXWyA9/+MPMmTOn5v6XXnopVVVVufDCC/O///u/6d69e5o1a5b7778/06dPz0knnZTNN9+85rX26dMnt9xyyzzP88m81113XTbccMO0bNkym222WW6//fZ51v3nP/+Zgw46KB06dEizZs2y4YYb5he/+MVi/X/whz/8IVtttVWqq6vTsmXLrL322jn88MNrrTNhwoR861vfqrX9iy++OHPnzq15zauttlqSZODAgamqqkpVVVWt3xAuzowPPPBAqqqqcv311+fMM89M586d07p16+yyyy4ZP358zXo77LBD/vznP+fll1+uea7//ljApz+C9+abb+Z73/teNtpoo6yyyirp0KFDdtpppzz88MOL3D8ffvhhzfdX8+bN07Zt2/Tu3TvXX3/9Yu1fAFgRHHbYYdluu+2SJAceeGCqqqpqzpye38f3unXrlr333js33XRTevbsmebNm9eccf3pj+8t7vuD5OOIdP7556dr165p3rx5evfunREjRmSHHXZYrDO5P3n/NWTIkGy44YZp1qxZfvOb3yT5+D3OVlttlbZt26Z169bp1atXrrzyylQqlVqv65lnnsmDDz5Y8/6kW7duNfcv7vtWPuZMKQCKOOCAA/Ktb30r3/nOdzJixIhceOGFmTVrVu69995873vfy8knn5xhw4bl1FNPzTrrrJP+/fsn+TgY9O3bN6+++mrOOOOM9OjRI88880zOPvvs/P3vf8+9995b603Q7bffnieffDIXXHBBqqqqcuqpp2avvfbKoYcemn//+9+57LLLMmXKlJx44on5yle+krFjx9Z6/KRJk/L1r389p512WgYNGpQ///nP+d///d+8++67ueyyy2q9pp/97GdZb731ctFFF6V169ZZd911M2PGjLzzzjs5+eSTs8Yaa2TmzJm59957079//1x99dU55JBDam3jz3/+cx5//PEMGjQoq6yySi688MLsv//+GT9+fNZee+0kyT/+8Y9ss8026dKlSy6++OJ07Ngxd999d77//e/nrbfeyjnnnLPA/T5q1KgceOCBOfDAA3PuueemefPmefnll3PffffVrPPmm29mm222ycyZM/OjH/0o3bp1y+23356TTz45//rXv3L55ZenU6dOueuuu7L77rvniCOOyJFHHpkkNaGqrjOeccYZ2XbbbfPrX/86U6dOzamnnpp99tknzz77bBo1apTLL788Rx99dP71r3/l5ptvXuT31zvvvJMkOeecc9KxY8e8//77ufnmm7PDDjtk5MiRC32TeuKJJ+a6667L//7v/6Znz5754IMP8vTTT+ftt99e5PMCwIrihz/8Ybbccssce+yxOf/887Pjjjsu8iN4Y8aMybPPPpuzzjor3bt3z8orr7zQ9Rf1/iBJzjzzzAwePDhHH310+vfvn1deeSVHHnlkZs2alfXWW2+xXsvw4cPz8MMP5+yzz07Hjh3ToUOHJB//Eu473/lOunTpkiR59NFHc/zxx+e1117L2WefneTjjx5+9atfTXV1dS6//PIkqTlTvq7vW0lSAYCl6JxzzqkkqVx88cW1lm+++eaVJJWbbrqpZtmsWbMqq622WqV///41ywYPHlxZaaWVKo8//nitx//xj3+sJKnccccdNcuSVDp27Fh5//33a5YNHz68kqSy+eabV+bOnVuz/NJLL60kqYwbN65mWd++fStJKrfcckut5zrqqKMqK620UuXll1+uVCqVyosvvlhJUvnCF75QmTlz5kJf/+zZsyuzZs2qHHHEEZWePXvWui9JZfXVV69MnTq1ZtmkSZMqK620UmXw4ME1y3bbbbfKmmuuWZkyZUqtxx933HGV5s2bV955550FPv9FF11USVJ57733FrjOaaedVklSeeyxx2otP+aYYypVVVWV8ePHVyqVSuXNN9+sJKmcc84582xjcWe8//77K0kqe+65Z631brzxxkqSyqhRo2qW7bXXXpWuXbvOd+YFzfGJT/b7zjvvXNl///0X+thNNtmkst9++y1wWwDAxz75Of6HP/yh1vJP3u/9t65du1YaNWpU8z7i0/cdeuih82x3Ue8P3nnnnUqzZs0qBx54YK31Ro0aVUlS6du37yJfQ5JKdXX1Qt8/VSqVypw5cyqzZs2qDBo0qNKuXbta7yM33njj+T5XXd638jEf3wOgiL333rvW7Q033DBVVVXZY489apY1btw466yzTl5++eWaZbfffns22WSTbL755pk9e3bN12677Zaqqqp5/hLcjjvuWOu3cBtuuGGSZI899qj1m6lPlv/3cyVJq1atsu+++9ZadtBBB2Xu3Ll56KGHai3fd99906RJk3le6x/+8Idsu+22WWWVVdK4ceM0adIkV155ZZ599tl51t1xxx3TqlWrmturr756OnToUDPX9OnTM3LkyOy///5p2bJlrX2w5557Zvr06Xn00Ufn2e4nvvjFLyb5+Ey1G2+8Ma+99to869x3333ZaKONsuWWW9Zafthhh6VSqdQ6q2p+PsuMn97HPXr0SDLv/x91MWTIkPTq1SvNmzev2e8jR46c737/b1tuuWXuvPPOnHbaaXnggQfy0UcffeYZAID/6NGjx2KfvZQs+v3Bo48+mhkzZuSAAw6otd7WW29d6yN0i7LTTjulTZs28yy/7777sssuu6S6ujqNGjVKkyZNcvbZZ+ftt9/O5MmTF7ndur5vxTWlACikbdu2tW43bdo0LVu2TPPmzedZPn369Jrbb7zxRsaNG5cmTZrU+mrVqlUqlUreeuutRT7Pwpb/93MlH0ehT+vYsWOSzPNxrk6dOs2z7k033ZQDDjgga6yxRn77299m1KhRefzxx3P44YfP81xJ0q5du3mWNWvWrCaMvP3225k9e3Z+/vOfz7MP9txzzySZZx/8t+233z7Dhw/P7Nmzc8ghh2TNNdfMJptsUut6SW+//fZ8X0vnzp3n+7o/7bPM+OnX/clp7581CF1yySU55phjstVWW+VPf/pTHn300Tz++OPZfffdF7nNn/3sZzn11FMzfPjw7Ljjjmnbtm3222+//POf//xMswAAH5vf+4uFWdT7g0/ek8zv/dr8ltVlrr/97W/p169fkuRXv/pV/vrXv+bxxx/PmWeeWWuGhanr+1ZcUwqAZVz79u3TokWLXHXVVQu8f0l644035lk2adKkJPO+UZrfNQF++9vfpnv37rnhhhtq3T9jxozPNE+bNm3SqFGjHHzwwTn22GPnu0737t0Xuo0vf/nL+fKXv5wZM2bk0UcfzeDBg3PQQQelW7du6dOnT9q1a5eJEyfO87jXX389yaL38ZKY8fP67W9/mx122CFXXHFFreXTpk1b5GNXXnnlDBw4MAMHDswbb7xRc9bUPvvsk+eee25pjQwADd6Svn7SJ+/FFvR+bXHPlprfXL///e/TpEmT3H777bV+aTp8+PDFnq/0+9aGQJQCYJm299575/zzz0+7du2WethIPo4Yt956a63Tx4cNG5aVVlop22+//SIfX1VVlaZNm85z8fT5/fW9xdGyZcvsuOOOefLJJ9OjR4+aM7w+i2bNmqVv375ZddVVc/fdd+fJJ59Mnz59svPOO2fw4MEZM2ZMevXqVbP+tddem6qqquy44441j0/m/U3hkpzx0/Mu7plTVVVVNfN9Yty4cRk1alTWWmutxX7O1VdfPYcddlieeuqpXHrppfnwww/TsmXLOs0NACwdW221VZo1a5Ybbrih5o/iJB9/rO/ll1+u00f4Pq2qqiqNGzeuuaB68vF7nuuuu26edRf0HqX0+9aGQJQCYJk2YMCA/OlPf8r222+fE044IT169MjcuXMzYcKE3HPPPTnppJOy1VZbLbHna9euXY455phMmDAh6623Xu6444786le/yjHHHFPzl1gW5pM/ffy9730vX/3qV/PKK6/kRz/6UTp16vSZPw7205/+NNttt12+9KUv5Zhjjkm3bt0ybdq0vPDCC7ntttsWes2ns88+O6+++mp23nnnrLnmmnnvvffy05/+NE2aNEnfvn2TJCeccEKuvfba7LXXXhk0aFC6du2aP//5z7n88stzzDHH1FwLolWrVunatWtuueWW7Lzzzmnbtm3at2+fbt26fa4ZF2TTTTfNTTfdlCuuuCJbbLFFVlpppfTu3Xu+6+6999750Y9+lHPOOSd9+/bN+PHjM2jQoHTv3j2zZ89e6PNstdVW2XvvvdOjR4+0adMmzz77bK677rr06dNHkAKAZUjbtm1z4oknZvDgwWnTpk3233//vPrqqxk4cGA6deqUlVb67Fco2muvvXLJJZfkoIMOytFHH5233347F1100Ty/9Eo+fo/y+9//PjfccEPWXnvtNG/ePJtuumnx960NgSgFwDJt5ZVXzsMPP5wLLrggQ4cOzYsvvpgWLVqkS5cu2WWXXT7Xb8Tmp2PHjvnFL36Rk08+OX//+9/Ttm3bnHHGGRk4cOBiPf7b3/52Jk+enCFDhuSqq67K2muvndNOO63mDdNnsdFGG2XMmDH50Y9+lLPOOiuTJ0/OqquumnXXXbfmmk0LstVWW+WJJ57IqaeemjfffDOrrrpqevfunfvuuy8bb7xxkmS11VbLI488ktNPPz2nn356pk6dmrXXXjsXXnhhTjzxxFrbu/LKK3PKKadk3333zYwZM3LooYfmmmuu+VwzLsgPfvCDPPPMMznjjDMyZcqUVCqVVCqV+a575pln5sMPP8yVV16ZCy+8MBtttFGGDBmSm2++eZEXFd1pp51y66235ic/+Uk+/PDDrLHGGjnkkENqriEBACw7zjvvvKy88soZMmRIrr766mywwQa54oorcuaZZ2bVVVf9zNvdaaedctVVV+XHP/5x9tlnn6yxxho56qij0qFDhxxxxBG11h04cGAmTpyYo446KtOmTUvXrl3z0ksvFX/f2hBUVRb07g4AAABgGffiiy9mgw02yDnnnJMzzjijvsehDkQpAAAAYLnw1FNP5frrr88222yT1q1bZ/z48bnwwgszderUPP3003X6K3zUPx/fAwAAAJYLK6+8cp544olceeWVee+991JdXZ0ddtgh5513niC1HHKmFAAAAADFffZL0wMAAADAZyRKAQAAAFCcKAUAAABAccv1hc7nzp2b119/Pa1atUpVVVV9jwMAAEABlUol06ZNS+fOnbPSSvV3roVjUpi/xf03ulxHqddffz1rrbVWfY8BAABAPXjllVey5ppr1tvzOyaFhVvUv9HlOkq1atUqyccvsnXr1vU8DQAAACVMnTo1a621Vs0xYX35z/NX/f8v4GOVJJVF/htdrqPUJ6dHtm7dWpQCAABYwdT3R+b+8/yiFMyrssh/oy50DgAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAACwzDnmmO/m3//+Zz766P088cRj2W677Ra6/vbbb58nnngsH330fv71r+fzne8cPc86/fvvn2eeGZfp0z/IM8+My377fXlpjc9iEKUAAACAZcoBB3wtl156Sc47b3B69uydhx/+S+688/astdZa812/W7duueOO2/Lww39Jz569c/75F+RnP7s0/fvvX7PO1ltvnRtuuD7XXfe7bLZZr1x33e9y442/z5ZbblnqZfEp9R6lLr/88nTv3j3NmzfPFltskYcffri+RwIAAGAF4Zh02XTiiSfkyiuvypVXXpXnnnsuJ5xwUl555ZUcc8x357v+d7/7nUyYMCEnnHBSnnvuuVx55VW56qqrc/LJJ9WsM2DA9zNixL254IIfZ/z48bnggh9n5Mj7MmDA90u9LD6lXqPUDTfckAEDBuTMM8/Mk08+mS996UvZY489MmHChPocCwAAgBWAY9JlU5MmTbLFFr1yzz0jai2/554R2WabPvN9TJ8+W8+z/t1335PevbdI48aNF7rOgrbJ0levUeqSSy7JEUcckSOPPDIbbrhhLr300qy11lq54oor6nMsAAAAVgCOSZdN7du3T+PGjfPGG5NrLX/jjcnp2HH1+T6mY8fV57t+kyZN0r59+/+/Tse88cYbn1rnjXTs2HEJTk9d1FuUmjlzZkaPHp1+/frVWt6vX7888sgj833MjBkzMnXq1FpfAAAAUFeOSZd9lUql1u2qqqp5li1q/U8vr+s2WbrqLUq99dZbmTNnTlZfvXblXH311TNp0qT5Pmbw4MGprq6u+VrQBc4AAABgYRyTLrveeuutzJ49e56zojp0WG2es6E+MWnSG/Ndf9asWXn77bf//zqT5jkrqkOHDvOcPUU59X6h80/K5Scqlco8yz5x+umnZ8qUKTVfr7zySokRAQAAaKAcky57Zs2aldGjx2TXXXeptXzXXXfJI4+Mmu9jRo16dJ71+/XbNU88MTqzZ89e6DoL2iZLX+P6euL27dunUaNG8xToyZMnz1OqP9GsWbM0a9asxHgAAAA0YI5Jl22XXPKTXHfdb/LEE6MzatSjOfroo9KlS5cMGfLLJMn555+XNdbonEMP/XaSZMiQX+a4476Xiy++KL/61a/Tp8/WOeKIw/ONb3yzZps//enP89BD9+d//ueU3HLLrfnyl/fNLrvsnO2261svr5F6PFOqadOm2WKLLTJiRO0r348YMSLbbLNNPU0FAADAisAx6bLtxhv/kAEDTszZZ5+VsWNHZ/vtt8uee+5T85cRO3XqmC5dutSs/9JLL2XPPffJDjtsn7FjR+eHPzwz3//+gNx0080164waNSpf//pB+fa3D824cU/msMMOyYEHfiN/+9vfir8+PlZVqccret1www05+OCDM2TIkPTp0ydDhw7Nr371qzzzzDPp2rXrIh8/derUVFdXZ8qUKWndunWBiQEAAKhvS+pYcEkdk358vsf8P/IHK6ZKkrmL/Ddabx/fS5IDDzwwb7/9dgYNGpSJEydmk002yR133LFY//gBAADg83BMCvWrXs+U+rycKQUAALDiWVaOBZ0pBQuyeGdK1ftf3wMAAABgxSNKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFBc4/oeAAAAAJZnb79za1q3Xrm+x4BlxtSpH6Rd270XuZ4zpRqKmR8k51Z//DXzg/qepmGyj8uwn8uwn8uwn8uwn8uwn8uwn8uwn5c++xhYDKIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcaIUAAAAAMWJUgAAAAAUJ0oBAAAAUJwoBQAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcXWOUs8888wC77vrrrs+1zAAAAAArBjqHKV69+6dn//857WWzZgxI8cdd1z233//JTYYAAAAAA1XnaPU7373uwwcODB77LFHJk2alLFjx6Znz56577778te//nVpzAgAAABAA1PnKNW/f/+MGzcus2fPziabbJI+ffpkhx12yOjRo9OrV6+lMSMAAAAADcxnutD5nDlzMnPmzMyZMydz5sxJx44d06xZsyU9GwAAAAANVJ2j1O9///v06NEj1dXVef755/PnP/85Q4cOzZe+9KX8+9//XhozAgAAANDA1DlKHXHEETn//PNz6623ZrXVVsuuu+6av//971ljjTWy+eabL4URAQAAAGhoGtf1AWPGjMn6669fa1mbNm1y44035rrrrltigwEAAADQcNX5TKn1118/s2fPzr333ptf/vKXmTZtWpLk9ddfz/7777/EBwQAAACg4anzmVIvv/xydt9990yYMCEzZszIrrvumlatWuXCCy/M9OnTM2TIkKUxJwAAAAANSJ3PlPrBD36Q3r175913302LFi1qlu+///4ZOXLkEh0OAAAAgIapzmdK/eUvf8lf//rXNG3atNbyrl275rXXXltigwEAAADQcNX5TKm5c+dmzpw58yx/9dVX06pVqyUyFAAAAAANW52j1K677ppLL7205nZVVVXef//9nHPOOdlzzz2X5GwAAAAANFB1/vjeT37yk+y4447ZaKONMn369Bx00EH55z//mfbt2+f6669fGjMCAAAA0MDUOUp17tw5Y8eOzfXXX58xY8Zk7ty5OeKII/LNb36z1oXPAQAAAGBB6hylkqRFixY5/PDDc/jhhy/peQAAAABYASxWlLr11lsXe4P77rvvZx4GAAAAgBXDYkWp/fbbr9btqqqqVCqVeZYlme9f5gMAAACA/7ZYf31v7ty5NV/33HNPNt9889x555157733MmXKlNx5553p1atX7rrrrqU9LwAAAAANQJ2vKTVgwIAMGTIk2223Xc2y3XbbLS1btszRRx+dZ599dokOCAAAAEDDs1hnSv23f/3rX6murp5neXV1dV566aUlMRMAAAAADVydo9QXv/jFDBgwIBMnTqxZNmnSpJx00knZcsstl+hwAAAAADRMdY5SV111VSZPnpyuXbtmnXXWyTrrrJMuXbpk4sSJufLKK5fGjAAAAAA0MHW+ptQ666yTcePGZcSIEXnuuedSqVSy0UYbZZdddqn5C3wAAAAAsDB1jlJJUlVVlX79+qVfv35Leh4AAAAAVgCfKUqNHDkyI0eOzOTJkzN37txa91111VVLZDAAAAAAGq46R6mBAwdm0KBB6d27dzp16uQjewAAAADUWZ2j1JAhQ3LNNdfk4IMPXhrzAAAAALACqPNf35s5c2a22WabpTELAAAAACuIOkepI488MsOGDVsaswAAAACwgqjzx/emT5+eoUOH5t57702PHj3SpEmTWvdfcsklS2w4AAAAABqmOkepcePGZfPNN0+SPP3007Xuc9FzAAAAABZHnaPU/fffvzTmAAAAAGAFUudrSgEAAADA57VYZ0r1798/11xzTVq3bp3+/fsvdN2bbrppiQwGAAAAQMO1WFGqurq65npR1dXVS3UgAAAAABq+xYpSV1999Xz/NwAAAAB8Fq4pBQAAAEBxohQAAACwzLniiuFZd51vZJWV+2XLLY/OXx4et8B1H3xgbJo03nGer+eem1BrvZtuejA9Nj0sK7fslx6bHpbhwx9e2i+DhajXKPXQQw9ln332SefOnVNVVZXhw4fX5zgAAACsIByPLttuvPG+nHTiL3La6d/K40/8Kttt1yN7731qJkx4Y6GPe+Yf1+aVV/9U87XuumvU3Ddq1DM56BuD8s1v7prRY36db35z13zj6wPz2GP/WNovhwWo1yj1wQcfZLPNNstll11Wn2MAAACwgnE8umy79Cd/yLcP3zNHHLFXNtyway655ListVaH/HLIrQt9XIcObdKxY9uar0aNGtXc9/Of/TG77NI7p572zWywQZeceto3s9NOvfLzn/1pab8cFmCxLnS+tOyxxx7ZY4896nMEAAAAVkCOR5ddM2fOypgxz+d/Tj2o1vJddu2dUaOeXuhjv9j7qEyfPjMbbtg1Z5xxcHbYsWfNfY8++o98/wdfrbX+rv2+KErVo88UpUaOHJmRI0dm8uTJmTt3bq37rrrqqiUyGAAAALDieeutKZkzZ246dGhTa/nqHdrkjTfene9jOnZqmyuGnJRevdbLjBmz8rvf3ZN+/U7KyJE/yZe23yxJMmnSO1l99U9tc/U2mTTpnaXzQlikOkepgQMHZtCgQendu3c6deqUqqqqpTHXfM2YMSMzZsyouT116tRizw0AAMCKzTFpWZ/uDZVKsqAEsf76XbL++l1qbvfps3FefeXNXHLJjTVRav7brCxwmyx9dY5SQ4YMyTXXXJODDz54acyzUIMHD87AgQOLPy8AAAA4Ji2jffvqNGq0Ut54o/YZTJPffHees6cWZqutNsqwYSNqbnfs2Haes6ImT34vq6/e9vMNzGdW5wudz5w5M9tss83SmGWRTj/99EyZMqXm65VXXqmXOQAAAFjxOCYto2nTJunVa73ce+8TtZaPvHd0+vTZZLG3M3bsP9OxY7ua21tvvVFG3ju61jr3jngiffps/PkG5jOr85lSRx55ZIYNG5Yf/vCHS2OehWrWrFmaNWtW/HkBAADAMWk5A074Wg47dHC22GL9bL31xvn1r27PhAlv5Ojv7JMkOfOMX+W119/MNdeckST56U//mG7dOmajjbpl5sxZGfa7e3PTTQ/lxj/858y2447/Snba8Qf5vwuvzz77bpvbbv1rRo4cnQce/Fm9vEY+Q5SaPn16hg4dmnvvvTc9evRIkyZNat1/ySWXLPa23n///bzwwgs1t1988cWMHTs2bdu2TZcuXRbySAAAAPjsHI8u2w44YKe8/fbUnPe/12bixHey8SbdctttF6Rr145JkomT3s4rEybXrD9r5qyc+j9X5LXX3kqLFs2y0Ubdcuutg7PHnlvXrLPNNpvkd8POzjlnX5lzzrkqX/hC5wy7/uxstdVGxV8fH6tzlBo3blw233zzJMnTT9f+U4x1vej5E088kR133LHm9oknnpgkOfTQQ3PNNdfUdTQAAABYLI5Hl33HHLNfjjlmv/ned9VVp9W6ffIp38jJp3xjkdv8ylf65itf6bskxmMJqHOUuv/++5fYk++www6pVCpLbHsAAACwOByPQv2r84XO/9urr76a1157bUnNAgAAAMAKos5Rau7cuRk0aFCqq6vTtWvXdOnSJauuump+9KMfZe7cuUtjRgAAAAAamDp/fO/MM8/MlVdemQsuuCDbbrttKpVK/vrXv+bcc8/N9OnTc9555y2NOQEAAABoQOocpX7zm9/k17/+dfbdd9+aZZtttlnWWGONfO973xOlAAAAAFikOn9875133skGG2wwz/INNtgg77zzzhIZCgAAAICGrc5RarPNNstll102z/LLLrssm2222RIZCgAAAICGrc4f37vwwguz11575d57702fPn1SVVWVRx55JK+88kruuOOOpTEjAAAAAA1Mnc+U6tu3b55//vnsv//+ee+99/LOO++kf//+GT9+fL70pS8tjRkBAAAAaGDqdKbUrFmz0q9fv/zyl790QXMAAAAAPrM6nSnVpEmTPP3006mqqlpa8wAAAACwAqjzx/cOOeSQXHnllUtjFgAAAABWEHW+0PnMmTPz61//OiNGjEjv3r2z8sor17r/kksuWWLDAQAAANAw1TlKPf300+nVq1eS5Pnnn691n4/1AQAAALA46hyl7r///qUxBwAAAAArkDpfUwoAAAAAPq86nym14447LvRjevfdd9/nGggAAACAhq/OUWrzzTevdXvWrFkZO3Zsnn766Rx66KFLai4AAAAAGrA6R6mf/OQn811+7rnn5v333//cAwEAAADQ8C2xa0p961vfylVXXbWkNgcAAABAA7bEotSoUaPSvHnzJbU5AAAAABqwOn98r3///rVuVyqVTJw4MU888UR++MMfLrHBAAAAAGi46hylqqura91eaaWVsv7662fQoEHp16/fEhsMAAAAgIarzlHq6quvXhpzAAAAALAC+UzXlHrvvffy61//OqeffnreeeedJMmYMWPy2muvLdHhAAAAAGiY6nym1Lhx47Lzzjtn1VVXzUsvvZSjjjoqbdu2zc0335yXX34511577dKYEwAAAIAGpM5nSp144on59re/nX/+85+1/treHnvskYceemiJDgcAAABAw1TnKPX444/nO9/5zjzL11hjjUyaNGmJDAUAAABAw1bnKNW8efNMnTp1nuXjx4/PaquttkSGAgAAAKBhq3OU+vKXv5xBgwZl1qxZSZKqqqpMmDAhp512Wr7yla8s8QEBAAAAaHjqHKUuuuiivPnmm+nQoUM++uij9O3bN+uss05atWqV8847b2nMCAAAAEADU+e/vte6dev85S9/yX333ZcxY8Zk7ty56dWrV3bZZZelMR8AAAAADVCdo9Qndtppp+y0005LchYAAAAAVhCfKUqNHDkyI0eOzOTJkzN37txa91111VVLZDAAAAAAGq46R6mBAwdm0KBB6d27dzp16pSqqqqlMRcAAAAADVido9SQIUNyzTXX5OCDD14a8wAAAACwAqjz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B/LUU0/lhz/8YZo3b1540uXbovbzCSeckLvuuiu//e1v8+yzz+aEE07I8ccfn1tuuaXwpABLQIVattxyy8p3v/vdWss22GCDymmnnVZPEzV8kydPriSpPPjgg/U9SoM0bdq0yrrrrlsZMWJEpW/fvpUf/OAH9T1Sg3LqqadWtttuu/oeo8Hba6+9KocffnitZf37969861vfqqeJGp4klZtvvrnm9ty5cysdO3asXHDBBTXLpk+fXqmurq4MGTKkHiZsGD69n+fnb3/7WyVJ5eWXXy4zVAOzoH386quvVtZYY43K008/XenatWvlJz/5SfHZGpL57ecDDzzQf5eXsPnt54033rgyaNCgWst69epVOeusswpOBrBkOFPqv8ycOTOjR49Ov379ai3v169fHnnkkXqaquGbMmVKkqRt27b1PEnDdOyxx2avvfbKLrvsUt+jNEi33nprevfuna997Wvp0KFDevbsmV/96lf1PVaDs91222XkyJF5/vnnkyRPPfVU/vKXv2TPPfes58karhdffDGTJk2q9TOxWbNm6du3r5+JS9mUKVNSVVXljMslaO7cuTn44INzyimnZOONN67vcRqkuXPn5s9//nPWW2+97LbbbunQoUO22mqrhX6Uks9mu+22y6233prXXnstlUol999/f55//vnstttu9T0aQJ2JUv/lrbfeypw5c7L66qvXWr766qtn0qRJ9TRVw1apVHLiiSdmu+22yyabbFLf4zQ4v//97zNmzJgMHjy4vkdpsP7973/niiuuyLrrrpu777473/3ud/P9738/1157bX2P1qCceuqp+cY3vpENNtggTZo0Sc+ePTNgwIB84xvfqO/RGqxPfu75mVjW9OnTc9ppp+Wggw5K69at63ucBuPHP/5xGjdunO9///v1PUqDNXny5Lz//vu54IILsvvuu+eee+7J/vvvn/79++fBBx+s7/EalJ/97GfZaKONsuaaa6Zp06bZfffdc/nll2e77bar79EA6qxxfQ+wLKqqqqp1u1KpzLOMJeO4447LuHHj8pe//KW+R2lwXnnllfzgBz/IPffc41oOS9HcuXPTu3fvnH/++UmSnj175plnnskVV1yRQw45pJ6nazhuuOGG/Pa3v82wYcOy8cYbZ+zYsRkwYEA6d+6cQw89tL7Ha9D8TCxn1qxZ+frXv565c+fm8ssvr+9xGozRo0fnpz/9acaMGeN7dyn65A9PfPnLX84JJ5yQJNl8883zyCOPZMiQIenbt299jteg/OxnP8ujjz6aW2+9NV27ds1DDz2U733ve+nUqZMz44Hljij1X9q3b59GjRrN8xvgyZMnz/ObYj6/448/PrfeemseeuihrLnmmvU9ToMzevToTJ48OVtssUXNsjlz5uShhx7KZZddlhkzZqRRo0b1OGHD0KlTp2y00Ua1lm244Yb505/+VE8TNUynnHJKTjvttHz9619Pkmy66aZ5+eWXM3jwYFFqKenYsWOSj8+Y6tSpU81yPxOXjlmzZuWAAw7Iiy++mPvuu89ZUkvQww8/nMmTJ6dLly41y+bMmZOTTjopl156aV566aX6G64Bad++fRo3bjzfn4l++bjkfPTRRznjjDNy8803Z6+99kqS9OjRI2PHjs1FF10kSgHLHR/f+y9NmzbNFltskREjRtRaPmLEiGyzzTb1NFXDU6lUctxxx+Wmm27Kfffdl+7du9f3SA3SzjvvnL///e8ZO3ZszVfv3r3zzW9+M2PHjhWklpBtt90248ePr7Xs+eefT9euXetpoobpww8/zEor1f6R1ahRo5rfzLPkde/ePR07dqz1M3HmzJl58MEH/Uxcwj4JUv/85z9z7733pl27dvU9UoNy8MEHZ9y4cbV+Hnbu3DmnnHJK7r777voer8Fo2rRpvvjFL/qZuJTNmjUrs2bN8jMRaDCcKfUpJ554Yg4++OD07t07ffr0ydChQzNhwoR897vfre/RGoxjjz02w4YNyy233JJWrVrVnJlWXV2dFi1a1PN0DUerVq3muU7XyiuvnHbt2rl+1xJ0wgknZJtttsn555+fAw44IH/7298ydOjQDB06tL5Ha1D22WefnHfeeenSpUs23njjPPnkk7nkkkty+OGH1/doy7X3338/L7zwQs3tF198MWPHjk3btm3TpUuXDBgwIOeff37WXXfdrLvuujn//PPTsmXLHHTQQfU49fJnYfu5c+fO+epXv5oxY8bk9ttvz5w5c2p+LrZt2zZNmzatr7GXK4v6Xv506GvSpEk6duyY9ddfv/Soy7VF7edTTjklBx54YLbffvvsuOOOueuuu3LbbbflgQceqL+hl0OL2s99+/bNKaeckhYtWqRr16558MEHc+211+aSSy6px6kBPqN6/dt/y6hf/OIXla5du1aaNm1a6dWrV+XBBx+s75EalCTz/br66qvre7QGr2/fvpUf/OAH9T1Gg3PbbbdVNtlkk0qzZs0qG2ywQWXo0KH1PVKDM3Xq1MoPfvCDSpcuXSrNmzevrL322pUzzzyzMmPGjPoebbl2//33z/e/x4ceemilUqlU5s6dWznnnHMqHTt2rDRr1qyy/fbbV/7+97/X79DLoYXt5xdffHGBPxfvv//++h59ubGo7+VP69q1a+UnP/lJ0RkbgsXZz1deeWVlnXXWqTRv3ryy2WabVYYPH15/Ay+nFrWfJ06cWDnssMMqnTt3rjRv3ryy/vrrVy6++OLK3Llz63dwgM+gqlKpVJZq9QIAAACAT3FNKQAAAACKE6UAAAAAKE6UAgAAAKA4UQoAAACA4kQpAAAAAIoTpQAAAAAoTpQCAAAAoDhRCgAAAIDiRCkASHLYYYdlv/32W+rPc+6552bzzTdfZrYDAAD1RZQCgCQ//elPc80119T3GPNVVVWV4cOH11p28sknZ+TIkfUz0P8njAEA8Hk0ru8BAGBZUF1dXd8j1Mkqq6ySVVZZpb7HAACAz8yZUgCsMP74xz9m0003TYsWLdKuXbvssssu+eCDD5LM+/G9HXbYIccff3wGDBiQNm3aZPXVV8/QoUPzwQcf5Nvf/nZatWqVL3zhC7nzzjtrHnPNNddk1VVXrfWcw4cPT1VV1QJnevzxx7Prrrumffv2qa6uTt++fTNmzJia+7t165Yk2X///VNVVVVz+9NnKX0y/0UXXZROnTqlXbt2OfbYYzNr1qyadSZOnJi99torLVq0SPfu3TNs2LB069Ytl1566QLne+CBB7Lllltm5ZVXzqqrrpptt902L7/8cq655poMHDgwTz31VKqqqlJVVVVzptmUKVNy9NFHp0OHDmndunV22mmnPPXUUzXb/GT2X/7yl1lrrbXSsmXLfO1rX8t77723wDkAAGh4RCkAVggTJ07MN77xjRx++OF59tln88ADD6R///6pVCoLfMxvfvObtG/fPn/7299y/PHH55hjjsnXvva1bLPNNhkzZkx22223HHzwwfnwww8/81zTpk3LoYcemocffjiPPvpo1l133ey5556ZNm1ako+jVZJcffXVmThxYs3t+bn//vvzr3/9K/fff39+85vf5Jprrqn1kcRDDjkkr7/+eh544IH86U9/ytChQzN58uQFbm/27NnZb7/90rdv34wbNy6jRo3K0Ucfnaqqqhx44IE56aSTsvHGG2fixImZOHFiDjzwwFQqley1116ZNGlS7rjjjowePTq9evXKzjvvnHfeeadm2y+88EJuvPHG3HbbbbnrrrsyduzYHHvssZ95PwIAsPzx8T0AVggTJ07M7Nmz079//3Tt2jVJsummmy70MZtttlnOOuusJMnpp5+eCy64IO3bt89RRx2VJDn77LNzxRVXZNy4cdl6660/01w77bRTrdu//OUv06ZNmzz44IPZe++9s9pqqyVJVl111XTs2HGh22rTpk0uu+yyNGrUKBtssEH22muvjBw5MkcddVSee+653HvvvXn88cfTu3fvJMmvf/3rrLvuugvc3tSpUzNlypTsvffe+cIXvpAk2XDDDWvuX2WVVdK4ceNac9133335+9//nsmTJ6dZs2ZJkosuuijDhw/PH//4xxx99NFJkunTp+c3v/lN1lxzzSTJz3/+8+y11165+OKLF/k6AQBoGJwpBcAKYbPNNsvOO++cTTfdNF/72tfyq1/9Ku++++5CH9OjR4+a/92oUaO0a9euVshaffXVk2ShZxstyuTJk/Pd73436623Xqqrq1NdXZ33338/EyZMqPO2Nt544zRq1KjmdqdOnWpmGz9+fBo3bpxevXrV3L/OOuukTZs2C9xe27Ztc9hhh2W33XbLPvvsk5/+9KeZOHHiQmcYPXp03n///bRr167mulerrLJKXnzxxfzrX/+qWa9Lly41QSpJ+vTpk7lz52b8+PF1ft0AACyfRCkAVgiNGjXKiBEjcuedd2ajjTbKz3/+86y//vp58cUXF/iYJk2a1LpdVVVVa9kn14qaO3dukmSllVaa5+OA/31Np/k57LDDMnr06Fx66aV55JFHMnbs2LRr1y4zZ86s0+tb0LyfzLagjyku7OOLyccfGxw1alS22Wab3HDDDVlvvfXy6KOPLnD9uXPnplOnThk7dmytr/Hjx+eUU05Z4OM+2ZcLu/4WAAANiygFwAqjqqoq2267bQYOHJgnn3wyTZs2zc0337zEtr/aaqtl2rRpNRdPT5KxY8cu9DEPP/xwvv/972fPPffMxhtvnGbNmuWtt96qtU6TJk0yZ86czzXbBhtskNmzZ+fJJ5+sWfbCCy8s1sXFe/bsmdNPPz2PPPJINtlkkwwbNixJ0rRp03nm6tWrVyZNmpTGjRtnnXXWqfXVvn37mvUmTJiQ119/veb2qFGjstJKK2W99db7XK8TAIDlhygFwArhsccey/nnn58nnngiEyZMyE033ZQ333yz1jWSPq+tttoqLVu2zBlnnJEXXnghw4YNq3Wh8flZZ511ct111+XZZ5/NY489lm9+85tp0aJFrXW6deuWkSNHZtKkSYv8yOGCbLDBBtlll11y9NFH529/+1uefPLJHH300WnRosUCz0568cUXc/rpp2fUqFF5+eWXc8899+T555+v2WfdunXLiy++mLFjx+att97KjBkzsssuu6RPnz7Zb7/9cvfdd+ell17KI488krPOOitPPPFEzbabN2+eQw89NE899VRNmDvggANcTwoAYAUiSgGwQmjdunUeeuih7LnnnllvvfVy1lln5eKLL84ee+yxxJ6jbdu2+e1vf5s77rgjm266aa6//vqce+65C33MVVddlXfffTc9e/bMwQcfnO9///vp0KFDrXUuvvjijBgxImuttVZ69uz5mee79tprs/rqq2f77bfP/vvvn6OOOiqtWrVK8+bN57t+y5Yt89xzz+UrX/lK1ltvvRx99NE57rjj8p3vfCdJ8pWvfCW77757dtxxx6y22mq5/vrrU1VVlTvuuCPbb799Dj/88Ky33nr5+te/npdeeqnmGlzJxzGuf//+2XPPPdOvX79ssskmufzyyz/zawMAYPlTVVnUxSQAgAbp1VdfzVprrZV77703O++8c7HnPffcczN8+PBFfrQRAICGrXF9DwAAlHHffffl/fffz6abbpqJEyfmf/7nf9KtW7dsv/329T0aAAArIFEKAFYQs2bNyhlnnJF///vfadWqVbbZZpv87ne/m+ev9gEAQAk+vgcAAABAcS50DgAAAEBxohQAAAAAxYlSAAAAABQnSgEAAABQnCgFAAAAQHGiFAAAAADFiVIAAAAAFCdKAQAAAFCcKAUAAABAcf8P1p/P7PZr3X0AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1200x800 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 生成一个长度为4的向量\n",
    "x = torch.rand(size=[10])\n",
    "print(f\"输入 = {x}\")\n",
    "# 新建一个全连接层\n",
    "linear_layer = nn.Linear(in_features=10, out_features=3, bias=False)\n",
    "print(\"权重 = \", linear_layer.weight) # 输出权重\n",
    "# 复位脉冲神经元层\n",
    "if_layer.reset()\n",
    "\n",
    "T = 20\n",
    "s_list = [] # 记录输出脉冲\n",
    "v_list = [] # 记录输出膜电压\n",
    "# 按照时间顺序逐步进行\n",
    "for t in range(T):\n",
    "    y = linear_layer(x) # 先通过全连接层模拟加权求和\n",
    "    s_list.append(if_layer(y).unsqueeze(0)) # 将加权求和后的结果输入脉冲神经元层\n",
    "    v_list.append(if_layer.v.unsqueeze(0))\n",
    "\n",
    "dpi = 100\n",
    "figsize = (12, 8)\n",
    "visualizing.plot_2d_heatmap(array=torch.cat(v_list).detach().numpy(), title='membrane potentials', xlabel='simulating step',\n",
    "                            ylabel='neuron index', int_x_ticks=True, x_max=T, figsize=figsize, dpi=dpi)\n",
    "\n",
    "visualizing.plot_1d_spikes(spikes=torch.cat(s_list).detach().numpy(), title='membrane sotentials', xlabel='simulating step',\n",
    "                        ylabel='neuron index', figsize=figsize, dpi=dpi)\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "SpikingJelly_zzy",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
